package cc.rengu.igas.momp.facade;

import cc.rengu.igas.momp.facade.request.OpmsQueryAvailableDiscountInfoBeforePaymentRequest;
import cc.rengu.igas.momp.facade.request.QueryAvailableDiscountInfoAfterPaymentRequest;
import cc.rengu.igas.momp.facade.request.QueryAvailableDiscountInfoBeforePaymentRequest;
import cc.rengu.igas.momp.facade.response.OpmsQueryAvailableDiscountInfoBeforePaymentResponse;
import cc.rengu.igas.momp.facade.response.QueryAvailableDiscountInfoAfterPaymentResponse;
import cc.rengu.igas.momp.facade.response.QueryAvailableDiscountInfoBeforePaymentResponse;
import cc.rengu.igas.momp.facade.result.Result;

/**
 * @author Jinan Liu
 * @date 2020/3/11 23:51
 * @description 可优惠信息查询接口
 */
public interface QueryAvailableDiscountInfoService {

    /**
     * 支付前可优惠信息查询接口
     *
     * @param queryAvailableDiscountInfoBeforePaymentRequest
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.QueryAvailableDiscountInfoBeforePaymentResponse>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:03
     */
    Result<QueryAvailableDiscountInfoBeforePaymentResponse> queryAvailableDiscountInfoBeforePayment(QueryAvailableDiscountInfoBeforePaymentRequest queryAvailableDiscountInfoBeforePaymentRequest);

    /**
     * 支付成功可优惠信息查询接口
     *
     * @param queryAvailableDiscountInfoAfterPaymentRequest
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.QueryAvailableDiscountInfoAfterPaymentResponse>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:03
     */
    Result<QueryAvailableDiscountInfoAfterPaymentResponse> queryAvailableDiscountInfoAfterPayment(QueryAvailableDiscountInfoAfterPaymentRequest queryAvailableDiscountInfoAfterPaymentRequest);

    /**
     * 收银台支付前可优惠信息查询接口
     *
     * @param opmsQueryAvailableDiscountInfoBeforePaymentRequest
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.QueryAvailableDiscountInfoBeforePaymentResponse>
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/16 19:03
     */
    Result<OpmsQueryAvailableDiscountInfoBeforePaymentResponse> queryAvailableDiscountInfoBeforePaymentForOpms(OpmsQueryAvailableDiscountInfoBeforePaymentRequest opmsQueryAvailableDiscountInfoBeforePaymentRequest);

}
